﻿<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Basic User Interface Test: ellipsis and extended grapheme cluster</title>
<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/">
<link rel="help" href="http://www.w3.org/TR/css3-ui/#text-overflow">
<link rel="match" href="reference/text-overflow-012-ref.html">
<meta name="flags" content="should">
<!-- This is SHOULD because although CSS-UI defines "character" as "grapheme cluster" in a non optional manner
  UAX29 itself defines grapheme cluster as either legacy or extended grapheme clusters,
  and says (emphasis mine):
      The extended grapheme clusters **should** be used
      in implementations in preference to legacy grapheme clusters
  -->
<meta name="assert" content="Implementations must hide characters, i.e. entire garpheme clusters, not part of them, to make room for the ellipsis">
<style>
#sizer {
  font-size: 50px;
  white-space: pre;
  color: white;
  float: left;
  position: relative;
}

#test {
  overflow: hidden;
  text-overflow: ellipsis;
  position: absolute;
  top: 0; right: 2px; bottom: 0; left: 0;
  color: green;
}
span {
  color: red;
}

</style>

<p>Test passes if there are three green dots below and <strong>no red</strong>.</p>

<!--Starting the line with an space because the first character on the line is clipped rather than ellided, so we need the tested grapheme cluster to be non-first-->
<!--
sizer shrinkwraps to the size of a space, plus the grapheme cluster, plus the ellipsis.
test is 2px shorter than that, so it can only fit part of the grapheme cluster.
The whole grapheme cluster should be removed, not just its second character.
-->

<div id=sizer> &#x0E01;&#x0E33;…<div id=test> <span>&#x0E01;&#x0E33;filler text to make things overflow</span></div><div>
